--[[--
- @Copyright (C), 2016-, sixiong.
- @Name controller.lua
- @Author sixiong
- @Version 1.0
- @Date: 2016年6月11日下午22:06:41
- @Description 控制器基类
- @Class
- @Function List
- @History <author> <time> <version > <desc>
            sixiong 2016年6月11日下午22:06:41  1.0  第一次建立该文件
--]]
controller = controller or {}
  
--[[
- @desc  定义一个controller 
- return bool
--]]
function controller.new()
	return inherit(controller);
end
 
 
--[[
- @desc  初始化函数
- return bool
--]]
function controller.init()
    
end


--[[
- @desc   临时存储传入视图的值
--]]
controller.assigndata = {};

--[[
- @desc  传值
- @param string  k     
- @param string  v     
- return string
--]]
function controller.assign(k, v)   
	    controller.assigndata[k] = v;  
end


--[[
- @desc  输出html
- @param string  template    视图路径
- @param string  data        传入视图的数据
- return string
--]]
function controller.render(template)
	 local render = require('core.template'); 
	 --  local enabled = render.caching(); --缓存状态
	   render.caching(false);
	     
     local view =   render.new(_APP..'/views/' ..template);  
     for k, v in pairs(controller.assigndata) do   
            view[k] = v; 
     end
     view:render(); 
end
 
 
--[[
- @desc  输出json
- @param table  data  传入的数据
-  return string
--]]
function controller.json(code , data , msg) 
	ngx.header['Content-Type'] = 'application/json';  
	local encoder = require('core.json'); 
    if not code then
      code = -1;
    end 
    
	if not msg then  
	    local codes =  _DEBUG and dofile(_PATH.._APP.."/common/code.lua") or require(_APP..'.common.code');  
	    msg = codes[code];
	end
	
	local res = {
	        ret = code,
	        msg = msg,
	        data = data,
	        timestamp = _TIMESTAMP
	     };
	 ngx.say(encoder.encode(res));
end
  
 
--[[
- @desc   跳转
- @param  string  url     跳转到url
- return string
--]]
function controller.redirect(url)
	ngx.redirect(url, ngx.HTTP_MOVED_TEMPORARILY)	
end
